home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-20
/
antcal.zip
/
ANTENNA.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-09-27
|
11KB
|
261 lines
10 CLS : COLOR 14, 0
LOCATE 1, 24: PRINT "ANTENNA CALCULATIONS LIBRARY": COLOR 12, 0
LOCATE 2, 15: PRINT "COMBINED PROGRAMS AND CODE FROM N3CHT AND K1TKL"
COLOR 11, 0
LOCATE 3, 18: PRINT "Modified by Mark Camp, KE0KO 09/27/91"
LOCATE 6, 1: COLOR 15, 0
PRINT "CALCULATIONS ARE AVAILABLE FOR THE FOLLOWING ANTENNA TYPES:"
PRINT
COLOR 15, 0: PRINT TAB(10); "1."; : COLOR 10, 0: PRINT " HALF WAVE DIPOLE"
COLOR 14, 0: PRINT TAB(10); "2."; : COLOR 10, 0: PRINT " THREE ELEMENT YAGI"
COLOR 13, 0: PRINT TAB(10); "3."; : COLOR 10, 0: PRINT " INVERTED VEE"
COLOR 12, 0: PRINT TAB(10); "4."; : COLOR 10, 0: PRINT " FULL WAVE LOOP"
COLOR 11, 0: PRINT TAB(10); "5."; : COLOR 10, 0: PRINT " VERTICAL"
COLOR 15, 0: PRINT TAB(10); "6."; : COLOR 10, 0: PRINT " QUAD"
COLOR 14, 0: PRINT TAB(10); "7."; : COLOR 10, 0: PRINT " DELTA LOOP"
PRINT : COLOR 27, 0: PRINT TAB(10); "9"; : COLOR 11, 0: PRINT "."; : COLOR 14, 0: PRINT " EXIT TO SYSTEM"
170 LOCATE 20, 1
PRINT "ENTER THE NUMBER OF THE ANTENNA TYPE YOU DESIRE: "; : COLOR 15, 0
S$ = INKEY$: IF S$ = "" GOTO 170
ON INSTR("12345679", S$) GOSUB 220, 370, 720, 1000, 1200, 1840, 1390, 2590
GOTO 10
220 CLS : COLOR 11, 0
PRINT "***** N3CHT - HALF WAVE DIPOLE DESIGN *****"
COLOR 10, 0: LOCATE 3, 42: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 3, 42 + AB: NEXT
LOCATE 3, 1: INPUT "INPUT DESIRED CENTER FREQUENCY IN MHZ.: ", F
COLOR 14, 0: PRINT
L = 468 / F
GOSUB 1780
PRINT USING "NECESSARY DIPOLE LENGTH IS: ###.## FEET, ###.## INCHES"; L; I
L = (468 / F) / 2
GOSUB 1780
PRINT
PRINT USING "ONE ARM IS: ###.## FEET, ###.## INCHES"; L; I
GOSUB 2550
ON INSTR("YyNn", R$) GOTO 220, 220, 10, 10
CLS : RETURN
370 CLS : COLOR 11, 0
PRINT "***** N3CHT - THREE ELEMENT YAGI DESIGN *****"
COLOR 10, 0: PRINT
COLOR 10, 0: LOCATE 3, 42: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 3, 42 + AB: NEXT
LOCATE 3, 1: INPUT "INPUT DESIRED CENTER FREQUENCY IN MHZ.: ", F
COLOR 14, 0: PRINT
L = 476 / F
GOSUB 1780
PRINT USING "DRIVEN ELEMENT LENGTH IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = 501 / F
GOSUB 1780
PRINT USING "REFLECTOR LENGTH IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = 450 / F
GOSUB 1780
PRINT USING "DIRECTOR LENGTH IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
Q = (936 / F) * .15
I = 12 * Q
E = SGN(I)
I = ABS(I)
Q = INT(I / 12)
I = (I - 12 * Q) * E
V = (936 / F) * .2
J = 12 * V
E = SGN(J)
J = ABS(J)
V = INT(J / 12)
J = (J - 12 * V) * E
PRINT USING "ELEMENT SPACING SHOULD BE NO LESS THAN: ###.## FEET, ###.## INCHES"; L; I
PRINT USING "AND NO GREATER THAN: ###.## FEET, ###.## INCHES"; V; J
GOSUB 2550
ON INSTR("YyNn", R$) GOTO 370, 370, 10, 10
CLS : RETURN
720 CLS : COLOR 11, 0
PRINT "***** N3CHT - INVERTED VEE DESIGN *****"
COLOR 10, 0: PRINT
COLOR 10, 0: LOCATE 3, 42: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 3, 42 + AB: NEXT
LOCATE 3, 1: INPUT "INPUT DESIRED CENTER FREQUENCY IN MHZ.: ", F
770 COLOR 12, 0
COLOR 10, 0: LOCATE 4, 52: FOR AB = 1 TO 2: PRINT CHR$(177): LOCATE 4, 52 + AB: NEXT
LOCATE 4, 1: INPUT "INPUT THE HIGHEST POINT ON THE ANTENNA (IN FEET): ", H
COLOR 14, 0: PRINT
L = (468 / F) / 2
G = (L ^ 2) - (H ^ 2)
IF G < 0 GOTO 840 ELSE GOTO 880
840 COLOR 15, 0
PRINT "ERROR - YOU CANNOT HAVE THE HIGHEST POINT THAT HIGH FOR "; F; " MHZ.!"
PRINT " RE-ENTER THE HIGHEST POINT."
GOTO 770
880 GOSUB 1780
G = SQR(G)
D = G * 12
K = SGN(D)
D = ABS(D)
G = INT(D / 12)
D = (D - 12 * G) * K
PRINT USING "ONE LEG OF THE INVERTED VEE WILL BE: ###.## FEET, ###.## INCHES LONG,"; L; I
PRINT USING "AND WILL TOUCH GROUND: ###.## FEET, ###.## INCHES FROM THE POLE BASE"; G; D
GOSUB 2550
ON INSTR("YyNn", R$) GOTO 720, 720, 10, 10
CLS : RETURN
1000 CLS : COLOR 11, 0
PRINT "***** N3CHT - FULL WAVE LOOP DESIGN *****"
COLOR 10, 0: PRINT
COLOR 10, 0: LOCATE 3, 42: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 3, 42 + AB: NEXT
LOCATE 3, 1: INPUT "INPUT DESIRED CENTER FREQUENCY IN MHZ.: ", F
COLOR 14, 0: PRINT
L = 1005 / F
GOSUB 1780
PRINT USING "LOOP IS: ###.## FEET, ###.## INCHES IN CIRCUMFERENCE"; L; I
PRINT
L = (1005 / F) / 4
GOSUB 1780
PRINT USING "4 SIDED LOOP: ###.## FEET, ###.## INCHES PER SIDE"; L; I
PRINT
L = (1005 / F) / 3
GOSUB 1780
PRINT USING "3 SIDED LOOP: ###.## FEET, ###.## INCHES PER SIDE"; L; I
GOSUB 2550
ON INSTR("YyNn", R$) GOTO 1000, 1000, 10, 10
CLS : RETURN
1200 CLS : COLOR 11, 0
PRINT "***** N3CHT - VERTICAL DESIGN *****"
COLOR 10, 0: PRINT
COLOR 10, 0: LOCATE 3, 42: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 3, 42 + AB: NEXT
LOCATE 3, 1: INPUT "INPUT DESIRED CENTER FREQUENCY IN MHZ.: ", F
COLOR 14, 0: PRINT
L = 234 / F
R = 240 / F
GOSUB 1780
S = 12 * R
T = SGN(S)
S = ABS(S)
R = INT(S / 12)
S = (S - 12 * R) * T
PRINT USING "ANTENNA LENGTH IS: ###.## FEET, ###.## INCHES"; L; I
PRINT USING "RADIALS ARE: ###.## FEET, ###.## INCHES "; R; S
GOSUB 2550
ON INSTR("YyNn", R$) GOTO 1200, 1200, 10, 10
CLS : RETURN
1390 CLS : COLOR 11, 0
PRINT "***** N3CHT - DELTA LOOP DESIGN *****"
COLOR 10, 0: PRINT
COLOR 10, 0: LOCATE 3, 42: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 3, 42 + AB: NEXT
LOCATE 3, 1: INPUT "INPUT DESIRED CENTER FREQUENCY IN MHZ.: ", F
COLOR 14, 0: PRINT
L = 1005 / F
GOSUB 1780
PRINT USING "DRIVEN ELEMENT CIRCUMFERENCE IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = 1050 / F
GOSUB 1780
PRINT USING "REFLECTOR CIRCUMFERENCE IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = 968 / F
GOSUB 1780
PRINT USING "DIRECTOR CIRCUMFERENCE IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = (1005 / F) / 3
GOSUB 1780
PRINT USING "DRIVEN ELEMENT SIDE IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = (1050 / F) / 3
GOSUB 1780
PRINT USING "REFLECTOR SIDE IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = (968 / F) / 3
GOSUB 1780
PRINT USING "DIRECTOR SIDE IS: ###.## FEET, ###.## INCHES"; L; I
PRINT
L = (1005 / F) * .15
GOSUB 1780
PRINT USING "ELEMENT SPACING SHOULD BE NO LESS THAN: ###.## FEET, ###.## INCHES"; L; I
L = (1005 / F) * .2
GOSUB 1780
PRINT USING "AND NO GREATER THAN: ###.## FEET, ###.## INCHES"; L; I
GOSUB 2550
ON INSTR("YyNn", R$) GOTO 1390, 1390, 10, 10
CLS : RETURN
1780 I = 12 * L
E = SGN(I)
I = ABS(I)
L = INT(I / 12)
I = (I - 12 * L) * E
RETURN
1840 REM
CLS : LOCATE 1, 1: COLOR 11, 0
PRINT "***** K1TKL - TWO ELEMENT QUAD DESIGN *****": COLOR 14, 0
LOCATE 10, 1
PRINT "THE FOLLOWING PROGRAM IS FOR A TWO ELEMENT QUAD WITH A FEED IMPEDANCE"
PRINT "OF 70 OHMS. YOU WILL BE ASKED FOR A FREQUENCY IN MHZ. THE PROGRAM"
PRINT "WILL PROVIDE DATA DIMENSION OUTPUT IN FEET AND INCHES FOR THE SIDE OF"
PRINT "THE QUAD, THE TOTAL WIRE LENGTH, THE DIAGONAL MEASUREMENT ALONG THE"
PRINT "SPIDER OR SUPPORT MEMBER FROM THE BOOM CENTER, FOR THE DRIVEN ELEMENT"
PRINT "AND THE REFLECTOR. THE OPTIMUM BOOM LENGTH WILL ALSO BE GIVEN."
PRINT : INPUT "ENTER <CR> TO CONTINUE", CR$
1950 CLS
LOCATE 14, 25: PRINT "For example: 14.025"
LOCATE 11, 38: FOR AB = 1 TO 7: PRINT CHR$(177): LOCATE 11, 38 + AB: NEXT
X = 0: LOCATE 10, 1: PRINT : INPUT "WHAT IS THE FREQUENCY TO USE IN MHZ? ", X
IF X <= 0 THEN BEEP ELSE 2020
LOCATE 12, 10: PRINT "Error in data entry. Try again...."
FOR XX = 1 TO 1500: NEXT XX: GOTO 1950
2020 LR = 258 / X
WR = 4 * LR
DR = (LR ^ 2 / 2) ^ .5
LD = 251 / X
WD = 4 * LD
DD = (LD ^ 2 / 2) ^ .5
SP = 118 / X
CLS
PRINT TAB(15); "DESIGN FREQUENCY IS:"; X; "MHZ"
PRINT : PRINT TAB(20); "REFLECTOR DIMENSIONS"
PRINT TAB(20); "********************"
PRINT
PRINT "SIDE LENGTH OF REFLECTOR IS: "; USING "### FEET, ##.## INCHES"; FIX(LR); (FIX(100 * (LR - FIX(LR)) * 12)) / 100
PRINT "TOTAL WIRE LENGTH OF REFL IS: "; USING "### FEET, ##.## INCHES"; FIX(WR); (FIX(100 * (WR - FIX(WR)) * 12)) / 100
PRINT "DRILL HOLE IN REFL SPIDER AT: "; USING "### FEET, ##.## INCHES"; FIX(DR); (FIX(100 * (DR - FIX(DR)) * 12)) / 100
PRINT : PRINT
PRINT TAB(21); "DRIVEN DIMENSIONS"
PRINT TAB(21); "*****************"
PRINT
PRINT "SIDE LENGTH OF DRIVEN IS: "; USING " ### FEET, ##.## INCHES"; FIX(LD); (FIX(100 * (LD - FIX(LD)) * 12)) / 100
PRINT "TOTAL WIRE LENGTH OF DRI. IS: "; USING "### FEET, ##.## INCHES"; FIX(WD); (FIX(100 * (WD - FIX(WD)) * 12)) / 100
PRINT "DRILL HOLE IN DRI. SPIDER AT: "; USING "### FEET, ##.## INCHES"; FIX(DD); (FIX(100 * (DD - FIX(DD)) * 12)) / 100
PRINT : PRINT
PRINT TAB(10); "BOOM LENGTH IS: "; USING "### FEET, ##.## INCHES"; FIX(SP); (FIX(100 * (SP - FIX(SP)) * 12)) / 100
PRINT TAB(10); "**************************************"
2270 PRINT : A$ = "": PRINT "DO YOU WANT A HARD COPY OUTPUT (Y/N)?"; A$
2280 A$ = INKEY$: IF A$ = "" GOTO 2280
ON INSTR("YyNn", A$) GOTO 2320, 2320, 2310, 2310
PRINT "INVALID ENTRY, TRY AGAIN.": BEEP: GOTO 2270
2310 CLS : GOTO 2500
2320 LPRINT "THE FREQUENCY IN MHZ IS:"; USING "###.###"; X
LPRINT : LPRINT
LPRINT TAB(20); "REFLECTOR DIMENSIONS"
LPRINT TAB(20); "********************"
LPRINT
LPRINT "SIDE LENGTH OF REFLECTOR IS: "; USING "### FEET, ##.## INCHES"; FIX(LR); (FIX(100 * (LR - FIX(LR)) * 12)) / 100
LPRINT "TOTAL WIRE LENGTH OF REFL IS: "; USING "### FEET, ##.## INCHES"; FIX(WR); (FIX(100 * (WR - FIX(WR)) * 12)) / 100
LPRINT "DRILL HOLE IN REFL SPIDER AT: "; USING "### FEET, ##.## INCHES"; FIX(DR); (FIX(100 * (DR - FIX(DR)) * 12)) / 100
LPRINT : LPRINT
LPRINT TAB(21); "DRIVEN DIMENSIONS"
LPRINT TAB(21); "*****************"
LPRINT
LPRINT "SIDE LENGTH OF DRIVEN IS: "; USING " ### FEET, ##.## INCHES"; FIX(LD); (FIX(100 * (LD - FIX(LD)) * 12)) / 100
LPRINT "TOTAL WIRE LENGTH OF DRI. IS: "; USING "### FEET, ##.## INCHES"; FIX(WD); (FIX(100 * (WD - FIX(WD)) * 12)) / 100
LPRINT "DRILL HOLE IN DRI. SPIDER AT: "; USING "### FEET, ##.## INCHES"; FIX(DD); (FIX(100 * (DD - FIX(DD)) * 12)) / 100
LPRINT : LPRINT
LPRINT TAB(10); "BOOM LENGTH IS: "; USING "### FEET, ##.## INCHES"; FIX(SP); (FIX(100 * (SP - FIX(SP)) * 12)) / 100
LPRINT TAB(10); "**************************************"
2500 CLS : A$ = ""
2510 LOCATE 20, 15: PRINT "Do you want to rerun the program (Y/N)?"; A$
A$ = INKEY$: IF A$ = "" GOTO 2510
ON INSTR("YyNn", A$) GOTO 1950, 1950, 10, 10
GOTO 10
2550 REM
2560 LOCATE 22, 5: COLOR 13, 0: PRINT "WANT TO TRY ANOTHER FREQUENCY (Y OR N)? "
R$ = INKEY$: IF R$ = "" GOTO 2560
RETURN
2590 CLS : SYSTEM